
/*
 * Copyright (c) 2022 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

let processors = {}
"use strict";
var prefixMatch;

prefixMatch = new RegExp(/(?!xmlns)^.*:/);

processors.normalize = function (str) {
  return str.toLowerCase();
};

processors.firstCharLowerCase = function (str) {
  return str.charAt(0).toLowerCase() + str.slice(1);
};

processors.stripPrefix = function (str) {
  return str.replace(prefixMatch, '');
};

processors.parseNumbers = function (str) {
  if (!isNaN(str)) {
    str = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);
  }
  return str;
};

processors.parseBooleans = function (str) {
  if (/^(?:true|false)$/i.test(str)) {
    str = str.toLowerCase() === 'true';
  }
  return str;
};

export {processors }